It is often necessary to monitor the state of various switches, buttons, triggers, and other components in a device. Traditionally, each such switch is connected to an independent input to a processor so that the processor can react when any one or several of the inputs are activated. In a mobile barcode scanning terminal, for example, the power button, the scan trigger, the battery door, and many other components are often monitored continuously. As the number of inputs increases, the number of required general purpose input/output (GPIO) pins on the processor also increases.
In many cases, the only way to increase the number of GPIO pins is to include a larger, more expensive microprocessor, causing the product to increase in size and cost. This is most notably a problem in mobile devices, where miniaturization is key, and there is therefore always a need to reduce the amount of board-space taken up by components.
R2R ladder networks, which are well-known in the art for their use in successive-approximation registers, allow the position of a series of switches to be converted to an analog output voltage. These circuits are central to traditional digital-to-analog techniques. Such R2R ladder networks are undesirable, however, in that they require a great many resistors and use single-pole/double-throw switches, which tend to be expensive, large, and complex.
Accordingly, there is a need for systems and methods that allow the state of multiple switches and other binary digital inputs to be monitored without increasing the number and/or size of processors used in the system.